package ProjectoX;

import java.util.Vector;

public class PiedraMoneda extends Piedra{

	protected Vector<PowerUp> misPowerUp;	
	private boolean puedeAccionar = true;
	
	public PiedraMoneda(Nivel N, Posicion P, int Fila, int Columna, int cant) {
		super(N, P, Fila, Columna, '5');
		misPowerUp = new Vector<PowerUp>();
		for (int i = 0; i<cant; i++) {
			misPowerUp.add(new Moneda(miNivel, new Posicion(getPos().getX()+9,getPos().getY()-32,getPos().getAncho(),getPos().getAlto() ), getFila()+1,getColumna(),false));
		}
		
	}
	
	public void accion(Mario m) {
		if (puedeAccionar) {
			puedeAccionar = false;
			new Reminder(1,this); //Creo un delay para volver a golpear
			PowerUp Item = getPowerUp();
			miNivel.incrementarPuntaje(5);
			miNivel.addMoneda(Item);
			new Animacion (4,(Moneda)Item);
			if (misPowerUp.size()==0) {
				remove();
				miNivel.addPiedra(new Piedra(miNivel, getPos(), getFila(),getColumna(), '6'));
			}	
			miNivel.getSoundCache().playSound("Sonidos/smw_coin.wav");
		}
	}
	
	public void accion(MarioGrande m) {
		if (puedeAccionar) {
			puedeAccionar = false;
			new Reminder(1,this); //Creo un delay para volver a golpear
			PowerUp Item = getPowerUp();
			miNivel.incrementarPuntaje(5);
			miNivel.addMoneda(Item);
			new Animacion (4,(Moneda)Item);
			if (misPowerUp.size()==0) {
				remove();
				miNivel.addPiedra(new Piedra(miNivel, getPos(), getFila(),getColumna(), '6'));
			}		
			miNivel.getSoundCache().playSound("Sonidos/smw_coin.wav");
		}
	}
	
	public PowerUp getPowerUp() {
		PowerUp Primero = misPowerUp.firstElement();
		misPowerUp.remove(0);
		return Primero;
	}

	public void puedeAccionar() {
		puedeAccionar = true;
	}
	
}
